package com.zelin.manager.util;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zelin.manager.dao.ItemDao;
import com.zelin.manager.entity.ItemEntity;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;
import java.util.Map;

/**
 * ------------------------------
 * 功能：
 * 作者：WF
 * 微信：hbxfwf13590332912
 * 创建时间：2021/11/2-14:35
 * ------------------------------
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class EsUtil {
    @Autowired
    private ItemDao itemDao;
    @Autowired
    private ElasticsearchRestTemplate restTemplate;
    //1. 将数据库表tb_item中所有的数据添加到索引库中
    @Test
    public void importDatatoES(){
        //1.1 查询出所有的sku商品列表
        List<ItemEntity> items = itemDao.selectList(new QueryWrapper<ItemEntity>().eq("status", "1"));
        //1.2 为specMap字段（动态域）赋值
        for (ItemEntity item : items) {
            String spec = item.getSpec();
            Map map = JSON.parseObject(spec, Map.class);
            item.setSpecMap(map);
        }
        //1.3 保存到索引库
        restTemplate.save(items);
        System.out.println("保存到索引库成功！");
    }
}
